package com.quad.innovators.salesease.model.form.warehouse;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

/**
 * @author : shanshan.li
 * @createTime : 2024/12/18 16:05
 * @Version : 1.0 
 */
@Schema(description = "销售退货单信息对象")
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class SaleReturnOrderForm {

    @Schema(description = "code")
    private String code;

    @Schema(description = "订单编号")
    private String orderNumber;

    @Schema(description = "快递单号")
    private String expressNumber;

    @Schema(description = "门店code")
    @NotBlank(message = "门店编码不能为空")
    private String shopCode;

    @Schema(description = "门店名称")
    @NotBlank(message = "门店名称不能为空")
    private String shopName;

    @Schema(description = "仓库code")
    @NotBlank(message = "仓库编码不能为空")
    private String warehouseCode;

    @Schema(description = "仓库名称")
    @NotBlank(message = "仓库名称不能为空")
    private String warehouseName;

    @Schema(description = "已付款金额")
    private BigDecimal paymentAmount;

    @Schema(description = "订单状态 1 - 已报单 2 - 已备货 3 - 已签收 4 - 已审核")
    private Integer orderStatus;

    @Schema(description = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditTime;

    @Schema(description = "签收时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime receiveTime;

    @Schema(description = "配货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime stockTime;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "销售单详情")
    private List<SaleOrderDetailForm> saleOrderDetailFormList;

    @Schema(description = "退货单详情")
    private List<ReturnOrderDetailForm> returnOrderDetailFormList;
}
